Computer systems include many elements such as processors, memory and input/output (I/O) devices. It is known to provide some of these elements as "modules" that plug in to a motherboard and interface with the other elements over various buses (e.g., Control, Data, Address). Examples of such modules are processor boards, video boards, memory devices, memory expansion boards, keyboards, etc.
The functionality and interface connections of a particular module varies, from architecture to architecture, and in some cases, a "newer" module with increased functionality is not "downwardly" compatible with an earlier version of the module. Hence, difficult choices must be made in the specification of a module, in light of design constraints.
A further consideration in the design of a module is the thermal characteristics thereof. As semiconductor devices become smaller and faster, the problem of heat dissipation tends to become exacerbated. Hence, packaging considerations are also paramount.